from constantes import diretorioWindows,diretorioLinux
from scipy.linalg import norm
from os import makedirs
from scipy import zeros,array

def carregarArquivos(SO,metodo,tFinal,n,dimensao):
    
    T=2**n+1;
    
    if SO=='w':
        barra='\\'
        diretorio=diretorioWindows
    elif SO=='l':
        barra='/'
        diretorio=diretorioLinux
        
    diretorio+=barra
    diretorio+=metodo+barra
    diretorio+=str(tFinal)+barra
    diretorio+=str(n)+barra
    
    f=[0]*6;
    f[0]=open(diretorio+'r1.txt')
    f[1]=open(diretorio+'r2.txt')
    f[2]=open(diretorio+'r3.txt')
    f[3]=open(diretorio+'p1.txt')
    f[4]=open(diretorio+'p2.txt')
    f[5]=open(diretorio+'p3.txt')
    
    r1=[]
    r2=[]
    r3=[]
    p1=[]
    p2=[]
    p3=[]
    
    i=0
    while i<T:
        r1+=list(map(float,f[0].readline().split()))
        r2+=list(map(float,f[1].readline().split()))
        r3+=list(map(float,f[2].readline().split()))
        p1+=list(map(float,f[3].readline().split()))
        p2+=list(map(float,f[4].readline().split()))
        p3+=list(map(float,f[5].readline().split()))
        i+=1
        
    r1=array(r1).reshape(T,dimensao)
    r2=array(r2).reshape(T,dimensao)
    r3=array(r3).reshape(T,dimensao)
    p1=array(p1).reshape(T,dimensao)
    p2=array(p2).reshape(T,dimensao)
    p3=array(p3).reshape(T,dimensao)
                
    return [r1,r2,r3,p1,p2,p3]
    
 
    #plot(r1(:,1),r1(:,2),'r',r2(:,1),r2(:,2),'g',r3(:,1),r3(:,2),'b');


def criarArquivos(tFinal,n,SO,metodo):
  
    f=[0]*6
    
    if SO=='w':
        barra='\\'
        diretorio=diretorioWindows+barra+metodo
    elif SO=='l':
        barra='/'
        diretorio=diretorioLinux+barra+metodo
    
    diretorio=diretorio+barra
    diretorio=diretorio+str(tFinal)
    diretorio=diretorio+barra
    diretorio=diretorio+str(n)
    
    try:
        makedirs(diretorio)
    except WindowsError:
        pass
     
    diretorio=diretorio+barra
    f[0]=open(diretorio+'r1.txt','w')
    f[1]=open(diretorio+'r2.txt','w');
    f[2]=open(diretorio+'r3.txt','w');
    f[3]=open(diretorio+'p1.txt','w');
    f[4]=open(diretorio+'p2.txt','w');
    f[5]=open(diretorio+'p3.txt','w');
    return f
    
def escreveArquivos(f,r1,r2,r3,p1,p2,p3,H,precisao,dimensao):

    t=['']*6
    
    for i in range(dimensao):
        t[0]+=str(r1[i])+' '
        t[1]+=str(r2[i])+' '
        t[2]+=str(r3[i])+' '
        t[3]+=str(p1[i])+' '
        t[4]+=str(p2[i])+' '
        t[5]+=str(p3[i])+' '
    
    for i in range(6):
        f[i].write(t[i]+'\n')
    
    return f
    
def fecharArquivos(f):

    n=len(f);

    #f[n-2].write('tempo = %f\n',tempo);
    
    for i in range(n-1):
        f[i].close()  